<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><script type="text/javascript">ginf={url:'https://204.12.228.236',script:'browse.php',target:{h:'d1sfrjDrsngmW4SXoJV4s2CS',p:'MEIKtSq/+nozS5uKtYg6/miRTXKY7wktxmnXEuyvWdx5zAqvvwlY0PFRVhgBCU8=',b:'',u:'d1sfrjDrsngmW4SXoJV4s2CSDmzU4hIszGnFGOy+UdM41kaqvVcY1+ATVEZNAhNYhufhyIAeCkuINRfmvnk32D8='},enc:{u:'HV3mSoYDf29j6I1Zr7bHuJ4x6izLkVTREM1m0PN3FMbBk0pzXq6hZYDW62veNcTfOLrDq4uWEvlMkAb7R5dETGoNyIR9KAepbtQqnaaPulrEKqBrjET088BwEiteGxrG',e:'1',x:'1',p:''},b:'15'}</script>
	<script type="text/javascript" src="syscall_way_files/main.js"></script><style type="text/css">
   /* Make room for the mini-form */
   html body { margin-top: 60px; }
   
   /* Reset all styles */
   #include * {
      text-align: left;
      border: 0; padding: 0; margin: 0;
      font: 12px Verdana,Arial,Tahoma;
      color: #eee;
      font-weight: normal;
      background: transparent;
      text-decoration: none;
      display: inline;
   }
   #include p {
      margin: 4px 0 0 10px;
      display: block;
   }
   #include b {
      font-weight: bold;
   }
   #include script {
      display:none;
   }
   
   /* Style the mini-form div */
   #include {
      border-top: 3px solid #ce6c1c;
      border-bottom: 3px solid #ce6c1c;
      background: #0b1933;
      position: absolute;
      top:0; left:0;
      width: 100%;
      height: 50px;
      z-index: 100000;
   }
   
   /* Mini-form elements */
   #include a {
      color: #ce6c1c;
   }
   #include a:hover {
      color: #ccc;
   }
   #include .url-input {
      padding: 2px;
      background: #eee;
      color: #111;
      border: 1px solid #ccc;
   }
   #include .url-input:focus {
      background: #fff;
      border: 1px solid #ce6c1c;
   }
   #include .url-button {
      font-weight: bold;
      border-style: outset;
      font-size: 11px;
      line-height: 10px;
   }
</style>
</head><body><div id="include">
   <form action="https://204.12.228.236/includes/process.php?action=update" target="_top" method="post" onsubmit="return updateLocation(this);">

      <p>
         
         <b>URL:</b>
         <input name="u" size="40" value="https://filippo.io/making-system-calls-from-assembly-in-mac-os-x/" class="url-input" style="width:50%;" type="text">
         <input value="Go" class="url-input url-button" type="submit">
         
         [<a href="https://204.12.228.236/index.php" target="_top">home</a>]
         [<a href="https://204.12.228.236/includes/process.php?action=clear-cookies&amp;return=https%3A%2F%2F204.12.228.236%2Fbrowse.php%3Fu%3DbBVE8SW48T4wQofQuYo48GiWSG%252FSpAg72DDTDLKpVdJ5xgqgo0tYnPMPSg5BEwxExuzjnMAWB0uKJ1mz%252Fg%253D%253D%26b%3D15" target="_top">clear cookies</a>]
         
      </p>
      
      <p>
         <b>Options:</b>         <input name="encodePage" id="encodePage" checked="checked" type="checkbox">
         <label for="encodePage">Encrypt Page</label>
         <input name="allowCookies" id="allowCookies" checked="checked" type="checkbox">
         <label for="allowCookies">Allow Cookies</label>
         <input name="stripJS" id="stripJS" checked="checked" type="checkbox">
         <label for="stripJS">Remove Scripts</label>
         <input name="stripObjects" id="stripObjects" checked="checked" type="checkbox">
         <label for="stripObjects">Remove Objects</label>
      </p>
      
   </form>

</div>

<script src="syscall_way_files/jquery-1.js"></script>
<center id="location_below_the_url_mini_form" style="width:950px;margin:0 auto;text-align:center;z-index:100009">
<a href="https://www.18jiasu.org/r.php" target="_blank"><img class="ahmnycvnsbkpcfpibzfi" src="syscall_way_files/13522.png" alt="在线代理看不到图片，美国vpn帮你看的更清楚! " style="border:0;"></a>
</center>
<center id="init_ad__top_fixed" style="width: 950px; margin: 0px auto; text-align: center; z-index: 100009; position: static; top: 94.2px; display: none;">
    <a href="https://www.18jiasu.org/r.php" target="_blank"><img class="ahmnycvnsbkpcfpibzfi" src="syscall_way_files/13522s.png" alt="在线代理看不到图片，美国vpn帮你看的更清楚! " style="border:0;"></a>
 </center>
<script>
	var init_img_offset_top = 200;
        var init_img_offset_left = 0;
	$(document).ready(function () {
                        $("#init_ad__top_fixed").hide();
			var offset = $("#location_below_the_url_mini_form").offset();
			init_img_offset_top = offset.top + parseFloat($('#location_below_the_url_mini_form').css('height'));
                        init_img_offset_left = offset.left;
		}
	)
	$(window).scroll(function () {
                var init_ad__top_fixed = $("#init_ad__top_fixed");
		if($(window).scrollTop() > init_img_offset_top)
                {
                        init_ad__top_fixed.show();
                        if(jQuery.support.boxModel){
                            init_ad__top_fixed.css("position","fixed");
                            init_ad__top_fixed.css("top","0");
                            init_ad__top_fixed.css("left",init_img_offset_left);
                        }else
                        {
                            init_ad__top_fixed.offset({ top: $(window).scrollTop()});
                        }
                }
		else{
			init_ad__top_fixed.css("position","static");
                        init_ad__top_fixed.hide();
                            }
	});
</script><script type="text/javascript">document.write(arcfour(ginf.enc.u,base64_decode('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')));</script>





  <meta charset="utf-8">
  
  <meta name="author" content="Filippo Valsorda">

  
  
  

  <!-- http://t.co/dKP3o1e -->
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  
  <link rel="canonical" href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo48GiWSG%2FSpAg72DDTDLKpVdJ5xgqgo0tYnPMPSg5BEwxExuzjnMAWB0uKJ1mz%2Fg%3D%3D&amp;b=15">
  
  <link href="syscall_way_files/browse_002.css" media="screen, projection" rel="stylesheet" type="text/css">
  
  
  
  <link href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2FH2STC%2FN5Bc%3D&amp;b=15" rel="alternate" title="PyTux" type="application/atom+xml">
  <!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="syscall_way_files/browse_003.css" rel="stylesheet" type="text/css">
<link href="syscall_way_files/browse.css" rel="stylesheet" type="text/css">

<!-- mathjax config similar to math.stackexchange -->



  
  





  <header role="banner"><hgroup>
  <h1><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4&amp;b=15">PyTux</a></h1>
  
    <h2>Trips of a curious penguin.</h2>
  
</hgroup>

<a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo41WycU3XX5R4nz2s%3D&amp;b=15">
<img class="heartbleed" src="syscall_way_files/browse.png">
<div class="heartbleed">Go to the Heartbleed test!</div>
</a>

</header>
  <nav role="navigation"><ul class="subscription" data-subscription="rss">
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2FH2STC%2FN5Bc%3D&amp;b=15" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  
</ul>
  
<form action="/browse.php?u=JQBEuSy%2B%2BjslHIuRvcpk%2BGiPQmk%3D&amp;b=15" method="post"><input name="convertGET" value="1" type="hidden">
  <fieldset role="search">
    <input name="q" value="site:filippo.io" type="hidden">
    <input class="search" name="q" results="0" placeholder="Search" type="text">
  </fieldset>
</form>
  
<ul class="main-navigation">
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4&amp;b=15">Blog</a></li>
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2FHueSWjD7Ag%3D&amp;b=15">Archives</a></li>
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo48WCTSnI%3D&amp;b=15">Links</a></li>
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo43l8%3D&amp;b=15">CV</a></li>
  <li><a href="https://204.12.228.236/browse.php?u=bBVE8SS46T81UMadv4g422CRTlLa%2FQ8rxyE%3D&amp;b=15">GitHub</a></li>
</ul>

</nav>

<nav role="navigation">

<ul class="main-navigation"><li><a><strong>Projects</strong></a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8SS46T81UMadv4g4727ODnja%2FA83ySGbBfM%3D&amp;b=15">youtube-dl</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo432CaTXTY6x4whinXEbA%3D&amp;b=15">Biglumber map</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8SKh7SRuVImdtYd48mLTQm7Yphgt3SHEB%2FOjRM5wxwg%3D&amp;b=15">Cover flipper</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8Tej%2FCEpQYuMv4s57XCJSW7b6BU73CzTE%2FrkV9F4mg%3D%3D&amp;b=15">Travis cron trigger</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8TGk5y0sV4WfoMt%2B6SY%3D&amp;b=15">Ruzzle map</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8TSm6nkyV4ufoJF%2F%2BGWcVi%2Fa%2Bxxt&amp;b=15">RECAP</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo48WCTVHmY%2BgIxyCXaDbK%2BVdx50A%3D%3D&amp;b=15">Syscall table</a></li>
    <li><a href="https://204.12.228.236/browse.php?u=bBVE8Tem9CM0V5rQs4p6skGzdWjB5R4x&amp;b=15">HN Titles</a></li>
</ul>


</nav>
  <div id="main">
    <div id="content">
      <div>
<article class="hentry" role="article">
  
  <header>
    
      
        <h1 class="entry-title">Making system calls from Assembly in Mac OS X</h1>
      
    
    
      <p class="meta">
        








  



<time datetime="2013-11-04T02:05:00+00:00" pubdate="" data-updated="true" class="updated">Nov 4<span>th</span>, 2013</time>
        
      </p>
    
  </header>


  <div class="entry-content"><p>The next step in my <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2BHqeQHHc5xxvymnVCe2lW8o430avvQlG3fMPUUYdXg%3D%3D&amp;b=15">playing with chroot escapes</a>
 is crafting some shellcode. Recently my main dev machine is a MacBook 
running OS X, so it felt reasonable to fiddle with making system calls 
of that platform.</p>

<p>By the way, a system call is a function of the kernel invoked by a 
userspace program and it can be something like writing to a file 
descriptor, or even exiting. Usually, these are wrapped by C functions 
in the standard library.</p>

<h3 id="the-system-calls">The system calls</h3>

<p>First, we need to know what system call we want to make, and what arguments it pretends.</p>

<p>A full list is hosted by Apple <a href="https://204.12.228.236/browse.php?u=JQBEqTSmszgwV4aNv5Bl%2FmzTQHHF5R5syCvbTuylQcx20Ai%2Bv1EayfwJFFoZQVQT2Ku8g4IVFwLKPxG5vyVp2WPU7OocvWM55bMD70o%3D&amp;b=15">here</a>. The header also hints at the fact that they are inherited from BSD. Yeah, <a href="https://204.12.228.236/browse.php?u=bBVE8Sa%2FsyApWYGOtYF%2B%2FCeSU2aa%2FhIpwmv5MsCS&amp;b=15">that makes sense</a>.</p>

<p>So, to write our proverbial <em>Hello world</em> we will pick the syscall 4</p>

<pre><code>4   AUE_NULL    ALL { user_ssize_t write(int fd, user_addr_t cbuf, user_size_t nbyte); }
</code></pre>

<!-- more -->

<h3 id="bit">32-bit</h3>

<p>Let’s start easy. A cute 32-bit program, written in <a href="https://204.12.228.236/browse.php?u=JQBEvy%2B4%2BDluVoeJvIx5%2BieYRXSa9wktwy3CTvGrR9Nx2kT1%2F0xB3P4%3D&amp;b=15">NASM assembler language</a>. Compile with <code>nasm</code> or <code>yasm</code>, output format <code>MachO</code>, and link with <code>ld</code>.</p>

<p>I’m on a Intel machine, so what we are looking for is the x86 syscall
 calling conventions for the OS X or BSD platform. They are pretty 
simple:</p>

<ul>
  <li>arguments passed on the stack, pushed right-to-left</li>
  <li>stack 16-bytes aligned</li>
  <li>syscall number in the <code>eax</code> register</li>
  <li>call by interrupt <code>0x80</code></li>
</ul>

<p>So what we have to do to print a “Hello world” is:</p>

<ul>
  <li>push the length of the string (<code>int</code>) to the stack</li>
  <li>push a pointer to the string to the stack</li>
  <li>push the stdout file descriptor (1) to the stack</li>
  <li>align the stack by moving the stack pointer 4 more bytes (16 - 4 * 3)</li>
  <li>set the <code>eax</code> register to the <code>write</code> syscall number (4)</li>
  <li>interrupt <code>0x80</code></li>
</ul>

<div>
<pre><code>; /usr/local/bin/nasm -f macho 32.asm &amp;&amp; ld -macosx_version_min 10.7.0 -o 32 32.o &amp;&amp; ./32

global start

section .text
start:
    push    dword msg.len
    push    dword msg
    push    dword 1
    mov     eax, 4
    sub     esp, 4
    int     0x80
    add     esp, 16

    push    dword 0
    mov     eax, 1
    sub     esp, 12
    int     0x80

section .data

msg:    db      "Hello, world!", 10
.len:   equ     $ - msg
</code></pre></div>

<h3 id="bit-1">64-bit</h3>

<p>64-bit is a bit cleaner, but completely different: OS X (and 
GNU/Linux and everyone except Windows) on 64 architectures adopt the <a href="https://204.12.228.236/browse.php?u=JQBEpnvnsGF0HIeMt8pz8mqITGTb%2FRo2wivYTv6oXZBl0UE%3D&amp;b=15">System V AMD64 ABI reference</a>. Jump to section <strong>A.2.1</strong> for the syscall calling convention.</p>

<ul>
  <li>arguments are passed on the registers <code>rdi</code>, <code>rsi</code>, <code>rdx</code>, <code>r10</code>, <code>r8</code> and <code>r9</code></li>
  <li>syscall number in the <code>rax</code> register</li>
  <li>the call is done via the <code>syscall</code> instruction</li>
  <li>what OS X contributes to the mix is that you have to add <code>0x20000000</code> to the syscall number (still have to figure out why)</li>
</ul>

<p>So, here is the (IMHO) much more clean 64-bit “Hello world”. Ah, if 
you want to do this at home and have it actually run, generate a <code>macho64</code> object with <strong>a new version of</strong> NASM or with YASM, and link with <code>ld</code> as usual.</p>

<div>
<pre><code>; /usr/local/bin/nasm -f macho64 64.asm &amp;&amp; ld -macosx_version_min 10.7.0 -lSystem -o 64 64.o &amp;&amp; ./64

global start


section .text

start:
    mov     rax, 0x2000004 ; write
    mov     rdi, 1 ; stdout
    mov     rsi, msg
    mov     rdx, msg.len
    syscall

    mov     rax, 0x2000001 ; exit
    mov     rdi, 0
    syscall


section .data

msg:    db      "Hello, world!", 10
.len:   equ     $ - msg
</code></pre></div>

</div>

  


  <footer>
    <p class="meta">
      
  

<span class="byline author vcard">Posted by <span class="fn">Filippo Valsorda</span></span>

      








  



<time datetime="2013-11-04T02:05:00+00:00" pubdate="" data-updated="true" class="updated">Nov 4<span>th</span>, 2013</time>
      


    </p>
    
      <div class="sharing">
  
  <a href="https://204.12.228.236/browse.php?u=JQBEqjS46SMlQMadv4g47mGcU2Q%3D&amp;b=15" class="twitter-share-button" data-url="/making-system-calls-from-assembly-in-mac-os-x/" data-via="FiloSottile" data-counturl="/making-system-calls-from-assembly-in-mac-os-x/">Tweet</a>
  
  
  <div class="g-plusone" data-size="medium"></div>
  
  
  
  <a href="https://204.12.228.236/browse.php?u=JQBEsCam7nk5UYeTsox5%2FH2SUy%2FW5hZt2DHUDPa%2B&amp;b=15" class="hn-share-button">Vote on HN</a>
  
</div>

    
    <p class="meta">
      
        <a class="basic-alignment left" href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2FnyOVW7Y4AErxSObALKmXdB60ULrukFH3%2FcQFg%3D%3D&amp;b=15" title="Previous Post: Customizing a Linode kernel">« Customizing a Linode kernel</a>
      
      
        <a class="basic-alignment right" href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo4%2FGecTXjP4BUlhjDeBLKrUNF30AqqtEVe1PZRSQpfAhdSmeH%2Bng%3D%3D&amp;b=15" title="Next Post: Analyzing the Adobe leaked passwords">Analyzing the Adobe leaked passwords »</a>
      
    </p>
  </footer>
</article>

  <section>
    <h1>Comments</h1>
    <div id="disqus_thread" aria-live="polite">Please enable JavaScript to view the <a href="https://204.12.228.236/browse.php?u=JQBEuiqi7CIzHIuRvcoo72ybfm%2Fa%2BhgwwjTC&amp;b=15">comments powered by Disqus.</a>
</div>
  </section>

</div>

<aside class="sidebar">
  
    <section class="aboutme">
  <h1>About Me</h1>
  <p>I am <span class="name">Filippo Valsorda</span> (<a href="https://204.12.228.236/browse.php?u=bBVE8Tem9CM0V5rQs4p6sk%2BUTW7m5g82wijT&amp;b=15">@FiloSottile</a>) an Italian consultant specialized in cryptography and security with a passion for Python, Go and maths.
  	I am one of the guys currently behind <a href="https://204.12.228.236/browse.php?u=bBVE8SS46T81UMadv4g4727ODnja%2FA83ySGbBfM%3D&amp;b=15">youtube-dl</a> and I attended <a href="https://204.12.228.236/browse.php?u=JQBEtiKy9jIyQYuWv4p7s2qSTA%3D%3D&amp;b=15">Hacker School</a> in NYC. Now I'm in Milan.</p>

  <p><span style="cursor: pointer">Click here to reveal my email.</span></p>
</section>
<section>
  <h1>Recent Posts</h1>
  <ul id="recent_posts">
    
      <li class="post">
        <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo47XqcDGTb6BkuzmnXFOulWd9h3ETrpFRR0OYZSkZcHQVcmOCi&amp;b=15">PSA: enable automatic updates. Please.</a>
      </li>
    
      <li class="post">
        <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo46WGYDGnQ6Ak2ySjTBPvnQNtmwQqnpQlaxvMPSUZfHQFOg6jjyNhaFAmJLVs%3D&amp;b=15">[2014-06-24] "The Heartbleed Test" @ OWASP / NYU Poly
</a>
      </li>
    
      <li class="post">
        <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo47miRVSzU5x9v2yHGEfq4Gw%3D%3D&amp;b=15">Salt &amp; Pepper, please: a note on password storage</a>
      </li>
    
      <li class="post">
        <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo47niRQG3W4R4v0mnGDeq5GdNsxlaq%2FFRZxOFRSRJYGQ9TxragwcECF0uVPQTk&amp;b=15">SQLAlchemy + MySQL + Python 3 + pip</a>
      </li>
    
      <li class="post">
        <a href="https://204.12.228.236/browse.php?u=bBVE8SW48T4wQofQuYo48mfQSmTM6xoxzmnSDuvnXdE41Emi%2FEFb0uAFSR9JFU1Nmez70NkSSQ2ALVm4uWtoyX7Qog%3D%3D&amp;b=15">On Keybase.io and encrypted private key uploading</a>
      </li>
    
  </ul>
</section>

<section class="coderwall">
  <h1>Coderwall<a href="https://204.12.228.236/browse.php?u=bBVE8SC%2B%2BTIyRYmSvMt08mTSR2jZ5ggt3zDfDfo%3D&amp;b=15"><img alt="Endorse" src="syscall_way_files/browse_002.png"></a></h1>
  <ul id="cw_badges">
    <li class="loading">Status updating...</li>
  </ul>

  
  <style type="text/css">
    .cw_badge img {
      padding: 5px;
      border: 0 none !important;
      -moz-box-shadow: none !important;
      -webkit-box-shadow: none !important;
      -o-box-shadow: none !important;
      box-shadow: none !important;
    }
  </style>
</section>


<section>
  <h1>GitHub Repos</h1>
  <ul id="gh_repos">
    <li class="loading">Status updating...</li>
  </ul>
  
  <a href="https://204.12.228.236/browse.php?u=bBVE8SS46T81UMadv4g422CRTlLa%2FQ8rxyE%3D&amp;b=15">@FiloSottile</a> on GitHub
  
  
  
</section>


<section>
  <h1>Latest Tweets</h1>
  <ul id="tweets" class="reset-zoom">
    <a class="twitter-timeline" data-dnt="true" href="https://204.12.228.236/browse.php?u=bBVE8Tem9CM0V5rQs4p6sk%2BUTW7m5g82wijT&amp;b=15" data-widget-id="369235929669435393" data-link-color="#1863a1" data-tweet-limit="4" data-chrome="noheader nofooter transparent noscrollbar">Tweets by @FiloSottile</a>
    
  </ul>
  
    <p>Follow <a href="https://204.12.228.236/browse.php?u=JQBEqjS46SMlQMadv4g422CRTlLa%2FQ8rxyE%3D&amp;b=15">@FiloSottile</a></p>
  
</section>


<section>
  <h1>My Pinboard</h1>
  <ul id="pinboard_linkroll">Fetching linkroll...</ul>
  <p><a href="https://204.12.228.236/browse.php?u=JQBEriq%2F%2FzghQIzQuYs46DO7SG3a2hQ23y3aBA%3D%3D&amp;b=15">My Pinboard Bookmarks »</a></p>
</section>



  
</aside>


    </div>
  </div>
  <footer role="contentinfo"><p>
  Copyright © 2014 - Filippo Valsorda -
  <span class="credit">Powered by <a href="https://204.12.228.236/browse.php?u=JQBEsSCl8icyV5uN%2Fopl%2Bg%3D%3D&amp;b=15">Octopress</a></span>
</p>

</footer>
  







  



  




<!-- (MIT License) - Copyright (c) 2012 Ilya Grigorik -->






禁止浏览任何非法内容，凡因违规浏览而引起的任何法律纠纷，本站概不负责。<div id="xunlei_com_thunder_helper_plugin_d462f475-c18e-46be-bd10-327458d045bd"></div></body></html>